﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GC2.Bussines;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Admin;
using GC2.Entities.Seguridad;
using GC2.Entities.Comunes;
using GC2.ExceptionHandler;

public partial class Empleados_EmpleadosGestion : GenericPage
{
    #region Propiedades
    Usuarios usuario = new Usuarios();
    private Empleados empleado = new Empleados();    
    private ExceptionConstructor exNew = new ExceptionConstructor();
    private int Accion;
    #endregion

    #region Controles

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();            
            if (!this.IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                Accion = Convert.ToInt16(Session["Accion"].ToString());
                btnOtro.Visible = false;
                CargarTareas();
                CargarCombo();
                CargarCCostos(Accion);
                if (Accion > 1)
                {
                    empleado = (Empleados)Session["Empleado"];
                    HidrataControles(empleado);
                    if (Accion == 2)
                    {
                        lblAccion.Text = "Modificación";
                    }
                    else
                    {
                        lblAccion.Text = "Viendo Datos";
                    }
                }
                if (Accion == 1)
                {
                    lblAccion.Text = "Nuevo Empleado";
                    txtSaldo.Text = "0";
                    txtRemuneracion.Text = "0";
                    FechaIng.SetFecha(DateTime.Now.Date);
                    FechaEstado.SetFecha(DateTime.Now.Date);
                }
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region Botones

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                DesHidrataControles();
            }
            catch (Exception ex) { ErrorUI(ex); }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            try
            {
                Response.Redirect("~/Seguridad/Default.aspx", false);
            }
            catch (Exception ex) { ErrorUI(ex); }
        }

        protected void btnOtro_Click(object sender, EventArgs e)
        {
            try
            {
                Limpiar();
                btnOtro.Visible = false;
                btnGuardar.Enabled = true;
            }
            catch (Exception ex) { ErrorUI(ex); }
        }

    #endregion

    #endregion

    #region Métodos

    #region CargarCombo
    protected void CargarCombo()
    {
        try
        {
            List<Provincias> listaProvincias = ListaProvincias();
            foreach (Provincias provincia in listaProvincias)
            {
                ListItem liItem = new ListItem();
                liItem.Value = provincia.ProvCod.ToString();
                liItem.Text = provincia.Provincia;
                cboProvincia.Items.Add(liItem);
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region HidrataControles
    /// <summary>
    /// Hidrata Controles Empleado 
    /// </summary>
    /// <param name="Empleados"></param>
    private void HidrataControles(Empleados empleado)
    {
        try
        {
            txtNombre.Text = empleado.Nombre;
            txtSaldo.Text = empleado.Saldo.ToString();
            txtRemuneracion.Text = empleado.Remuneracion.ToString();
            txtBanco1.Text = empleado.Banco1;
            txtCuenta1.Text = empleado.Cuenta1;
            txtDireccion.Text = empleado.Direccion;
            txtLocalidad.Text = empleado.Localidad;
            cboTareas.SelectedValue = empleado.Id_Tarea.ToString();
            cboProvincia.SelectedValue = empleado.Id_Provincia.ToString();
            txtCodPostal.Text = empleado.CodPostal;
            txtTe1.Text = empleado.Te1;
            txtTe2.Text = empleado.Te2;
            FechaIng.SetFecha(empleado.FechaIng);
            FechaEstado.SetFecha(empleado.FechaEstado);
            txtContacto.Text = empleado.Contacto;
            cboEstado.SelectedValue = empleado.Estado;
            txtEmail.Text = empleado.Email;
            txtObs.Text = empleado.Obs;

            int iIndex = 0;
            foreach (ListItem liItem in cboCCostos.Items)
            {
                if (liItem.Value == empleado.CCostos.ToString())
                {
                    cboCCostos.SelectedIndex = iIndex;
                    break;
                }
                iIndex++;
            }
            // cboCCostos.Enabled = false;
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region DesHidrataControles
    /// <summary>
    /// DesHidrata Controles Empleado
    /// </summary>
    /// <param name="Empleados"></param>
    private void DesHidrataControles()
    {
        try
        {
            BMEmpleados bmEmpleados = new BMEmpleados(Connection);
            Accion = Convert.ToInt16(Session["Accion"].ToString());
            if (Accion > 1)
            {
                empleado = (Empleados)Session["Empleado"];
            }
            empleado.Nombre = txtNombre.Text;
            empleado.Saldo = Convert.ToDecimal(txtSaldo.Text.Trim());
            empleado.Remuneracion = Convert.ToDecimal(txtRemuneracion.Text.Trim());
            empleado.Id_Periodo = Convert.ToInt16(cboPeriodo.SelectedValue);
            empleado.Periodo = cboPeriodo.SelectedItem.Text;
            empleado.Id_Tarea = Convert.ToInt16(cboTareas.SelectedValue);
            empleado.Tarea = cboTareas.SelectedItem.Text;
            empleado.Banco1 = txtBanco1.Text;
            empleado.Cuenta1 = txtCuenta1.Text;
            empleado.Direccion = txtDireccion.Text;
            empleado.Localidad = txtLocalidad.Text;
            empleado.Id_Provincia = Convert.ToInt16(cboProvincia.SelectedValue);
            empleado.Provincia = cboProvincia.SelectedItem.Text;
            empleado.CodPostal = txtCodPostal.Text;
            empleado.Te1 = txtTe1.Text;
            empleado.Te2 = txtTe2.Text;
            empleado.FechaIng = FechaIng.GetFecha();
            empleado.FechaEstado = FechaEstado.GetFecha();
            empleado.Contacto = txtContacto.Text;
            empleado.Estado = cboEstado.SelectedValue;
            empleado.Email = txtEmail.Text;
            empleado.Obs = txtObs.Text;
            empleado.CCostos = Convert.ToInt16(cboCCostos.SelectedItem.Value);
            if (Accion == 1)
            {
                empleado = bmEmpleados.BMEmpleadosInsert(empleado);
                lblAccion.Text = "Nuevo Empleado Creado";
                btnGuardar.Enabled = false;
                btnOtro.Visible = true;
            }
            if (Accion == 2)
            {
                bmEmpleados.BMEmpleadosUpdate(empleado);
                lblAccion.Text = "Empleado Actualizado";
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region Limpiar
    /// <summary>
    /// Limpia controles de Interfaz
    /// </summary>
    private void Limpiar()
    {
        try
        {
            txtNombre.Text = "";
            txtSaldo.Text = "0";
            txtRemuneracion.Text = "0";
            txtBanco1.Text = "";
            txtCuenta1.Text = "";
            txtDireccion.Text = "";
            txtLocalidad.Text = "";
            cboProvincia.SelectedIndex = 0;
            txtCodPostal.Text = "";
            txtTe1.Text = "";
            txtTe2.Text = "";
            txtTe3.Text = "";
            txtTe4.Text = "";
            txtContacto.Text = "";
            txtEmail.Text = "";
            txtObs.Text = "";
            lblAccion.Text = "Nuevo Empleado";
      
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region CargarTareas
    /// <summary>
    /// Carga Combo Tareas
    /// </summary>
    private void CargarTareas()
    {
        try
        {
            List<Tareas> listaTareas = new List<Tareas>();
            BMTareas bmTareas = new BMTareas(Connection);
            Tareas tarea0 = new Tareas();
            ListItem item0 = new ListItem();
            item0.Value = "0";
            item0.Text = " ";
            cboTareas.Items.Add(item0);
            listaTareas = bmTareas.BMTareasGetAll();
            foreach (Tareas tarea in listaTareas)
            {
                ListItem item = new ListItem();
                item.Value = tarea.Id_Tarea.ToString();
                item.Text = tarea.Tarea;
                cboTareas.Items.Add(item);
            }

        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region CargarCCostos
    private void CargarCCostos(int iAccion)
    {
        try
        {
            List<CentrosCostos> listaCCostos = new List<CentrosCostos>();
            BMCentrosCostos bmCCostos = new BMCentrosCostos(Connection);
            if (iAccion == 1)
            {
                listaCCostos = bmCCostos.BMCentrosCostosGetAllActivos();
            }
            else
            {
                listaCCostos = bmCCostos.BMCentrosCostosGetAll();
            }
            foreach (CentrosCostos ccostos in listaCCostos)
            {
                ListItem liItem = new ListItem();
                liItem.Value = ccostos.IdCentrosCostos.ToString();
                liItem.Text = ccostos.Nombre;
                cboCCostos.Items.Add(liItem);
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #endregion


}
